1. Field of the Invention
The present invention is of a proactive user interface, and systems and methods thereof, particularly for use with mobile information devices.
2. Description of the Related Art
The use of mobile and portable wireless devices has expanded dramatically in recent years. Many such devices having varying functions, internal resources, and capabilities now exist, and include, but are not limited to mobile telephones, personal digital assistants, medical and laboratory instrumentation, smart cards, and set-top boxes. All such devices can be referred to are mobile information devices. The devices tend to be special purpose, limited-function devices, rather than the general-purpose personal computer. Many of these devices are connected to the Internet, and are used for a variety of applications.
One example of such a mobile information device is the cellular telephone. Cellular telephones are fast becoming ubiquitous; and the use of cellular telephones is even surpassing that of traditional PSTN (public switched telephone network) telephones or “land line” telephones. Cellular telephones themselves are becoming more sophisticated, and in fact are actually computational devices with embedded operating systems.
As cellular telephones become more sophisticated, the range of functions that they offer is also potentially becoming more extensive. However, currently available functions are typically related to extensions of functions already present in regular (land line) telephones, and/or the merging of certain functions of personal digital assistants (PDAs) with those of cellular telephones. The user interface provided with cellular telephones is similarly non-sophisticated, typically featuring a keypad for scrolling through a few simple menus. Customization, although clearly desired by customers who have spent significant amounts of money on personalized ring tones and other cellular telephone accessories, is still limited to a very few functions of the cellular telephone. Furthermore, cellular telephones currently lack any automatic personalization, for example the user interface and custom/tailored functionalities that are required for better use of the mobile information device, and/or the ability to react according to the behavior of the user.
This lack of sophistication, however, is also seen with user interfaces for personal (desk top or laptop) computers and other computational devices. These computational devices can also only be customized in very simple ways. Such customization must be performed by the user, who may not understand computer functions and/or may not feel comfortable with performing such customization tasks. Currently, computational devices do not learn patterns of user behavior and adjust their own behavior accordingly, as adaptive systems for the user interface. If the user cannot manually adjust the computer, then the user must adjust his/her behavior to accommodate the computer, rather than vice versa.
Software which is capable of learning has been developed, albeit only for specialized laboratory functions. For example, “artificial intelligence” (AI) software has been developed. The term “AI” has been given a number of definitions. “AI is the study of the computations that make it possible to perceive, reason, and act.” (Artificial Intelligence A Modern Approach (second edition) by Stuart Russell, Peter Norvig (Prentice Hall, Pearson Education Inc, 2003). AI software combines several different concepts, such as perception, which provides an interface to the world in which the AI software is required to reason and act. Examples include but are not limited to, natural language processing—communicating, understanding document content and context of natural language; computer vision—perceive objects from imagery source; and sensor systems—perception of objects and features of perceived objects analyzing sensory data, etc.
Another important concept is that of the knowledge base. Knowledge representation is responsible for representing extracting and storing knowledge. This discipline also provides techniques to generalize knowledge, feature extraction and enumeration, object state construction and definitions. The implementation itself may be performed by commonly using known data structures, such as graphs, vectors, tables, etc.
Yet another important concept is that of reasoning. Automated reasoning combines the algorithms that use the knowledge representation and perception to draw new conclusions, infer questions and answers, and achieve the agent goals. The following conceptual frameworks are examples of AI reasoning: rule bases—system rules are evaluated against the knowledge base and perceived state for reasoning; search systems—the use of well known data structures for searching for an intelligent conclusion according to the perceived state, the available knowledge and goal (examples include decision trees, state graphs, minimax decision etc); classifiers—the target of the classifier reasoning system is to classify a perceived state represented as an experiment that has no classification tag. According to a pre-classified knowledge base the classifier will infer the classification of the new experiment (examples include vector distance heuristics, Support Vector Machine, Classifier Neural Network etc).
Another important concept is for learning. The target of learning is improving the potential performance of the AI reasoning system by generalization over experiences. The input of a learning algorithm will be the experiment and the output would be modifications of the knowledge base according to the results (examples include Reinforcement learning, Batch learning, Support Vector Machine etc).
Work has also been done for genetic algorithms and evolution algorithms for software. One example of such software is described in “Evolving Virtual Creatures”, by Karl Sims (Computer Graphics, SIGGRAPH '94 Proceedings, July 1994, pp. 15-22). This reference described software “creatures” which could move through a three-dimensional virtual world, which is a simulated version of the actual physical world. The creatures could learn and evolve by using genetic algorithms, thereby changing their behaviors without directed external input. These genetic algorithms therefore delineated a hyperspace of potential behaviors having different “fitness” or rewards in the virtual world. The algorithms themselves were implemented by using directed graphs, which describe both the genotypes (components) of the creatures, and their behavior.
At the start of the simulation, many different creatures with different genotypes are simulated. The creatures are allowed to alter their behavior in response to different stimuli in the virtual world. At each “generation”, only certain creatures are allowed to survive, either according to a relative or absolute cut-off score, with the score being determined according to the fitness of the behavior of the creatures. Mutations are permitted to occur, which may increase the fitness (and hence survivability) of the mutated creatures, or vice versa. Mutations are also performed through the directed graph, for example by randomly changing a value associated with a node, and/or adding or deleting nodes. Similarly, “mating” between creatures may result in changes to the directed graph.
The results described in the reference showed that in fact virtual creatures could change and evolve. However, the creatures could only operate within their virtual world, and had no point of reference or contact with the actual physical world, and/or with human computer operators.